To install missing packages, run install.packages("package_name")

# Packages ----
library(tidyverse)
── Attaching packages ──────────────────────────────────────────────────────────────────────────── tidyverse 1.2.1 ──
✔ ggplot2 3.1.0     ✔ purrr   0.2.5
✔ tibble  1.4.2     ✔ dplyr   0.7.8
✔ tidyr   0.8.2     ✔ stringr 1.3.1
✔ readr   1.3.0     ✔ forcats 0.3.0
── Conflicts ─────────────────────────────────────────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag()    masks stats::lag()
library(plotly)

Attaching package: ‘plotly’

The following object is masked from ‘package:ggplot2’:

    last_plot

The following object is masked from ‘package:stats’:

    filter

The following object is masked from ‘package:graphics’:

    layout
# Plot settings ----
theme_set(theme_bw())

# Knitr options ----
knitr::opts_chunk$set(message = FALSE, warning = FALSE)

Cats vs. Dogs

Data

Read data in from URL.

catsvdogs <- read_csv("https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2018-09-11/cats_vs_dogs.csv") %>% 
  select(-X1)
Missing column names filled in: 'X1' [1]Parsed with column specification:
cols(
  X1 = col_double(),
  state = col_character(),
  n_households = col_double(),
  percent_pet_households = col_double(),
  n_pet_households = col_double(),
  percent_dog_owners = col_double(),
  n_dog_households = col_double(),
  avg_dogs_per_household = col_double(),
  dog_population = col_double(),
  percent_cat_owners = col_double(),
  n_cat_households = col_double(),
  avg_cats_per_household = col_double(),
  cat_population = col_double()
)

Check data names.

names(catsvdogs)
 [1] "state"                  "n_households"           "percent_pet_households" "n_pet_households"      
 [5] "percent_dog_owners"     "n_dog_households"       "avg_dogs_per_household" "dog_population"        
 [9] "percent_cat_owners"     "n_cat_households"       "avg_cats_per_household" "cat_population"        

Look at first 6 rows of data.

EDA

Which state has the highest avg_dogs_per_household?

Which state has the highest avg_cats_per_household?

Is there a correlation between dog ownership and cat ownership?

percent_owners_plot <- catsvdogs %>% 
  filter(state != "District of Columbia") %>% 
  ggplot(aes(x = percent_dog_owners, y = percent_cat_owners)) +
  geom_point(aes(col = state), show.legend = FALSE) +
  geom_smooth(se = FALSE, method = "lm")

ggplotly(percent_owners_plot)

How do we represent this geographically? (follow example outlined here)

Calculate and plot rankings based on difference between percent_dog_owners and percent_cat_owners.

What’s going on with Delaware?

College Majors

Data

Read in data from URL and clean up names using the janitor package

college_majors <- read_csv("https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2018-10-16/recent-grads.csv") %>% 
  janitor::clean_names(case = "snake")
Parsed with column specification:
cols(
  .default = col_double(),
  Major = col_character(),
  Major_category = col_character()
)
See spec(...) for full column specifications.

Check data for any problems with parsing

Take a look at the data using View()

What are the highest/lowest earning majors?

earnings_order <- college_majors %>% 
  select(major, median) %>% 
  arrange(desc(median))

earnings_order %>% 
  head() %>% 
  bind_rows(
    earnings_order %>% 
      tail()
  )

What about Statistics?

Plot median salary by major.

How many of each major_category are there?

What’s the distribution of median income across each major_category?

LS0tCnRpdGxlOiAiQ2F0cyB2cy4gRG9ncyIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKVG8gaW5zdGFsbCBtaXNzaW5nIHBhY2thZ2VzLCBydW4gYGluc3RhbGwucGFja2FnZXMoInBhY2thZ2VfbmFtZSIpYApgYGB7ciBzZXR1cH0KIyBQYWNrYWdlcyAtLS0tCmxpYnJhcnkodGlkeXZlcnNlKQpsaWJyYXJ5KHBsb3RseSkKCiMgUGxvdCBzZXR0aW5ncyAtLS0tCnRoZW1lX3NldCh0aGVtZV9idygpKQoKIyBLbml0ciBvcHRpb25zIC0tLS0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KG1lc3NhZ2UgPSBGQUxTRSwgd2FybmluZyA9IEZBTFNFKQpgYGAKCiMgQ2F0cyB2cy4gRG9ncwojIyBEYXRhClJlYWQgZGF0YSBpbiBmcm9tIFVSTC4KYGBge3IgZGF0YX0KY2F0c3Zkb2dzIDwtIHJlYWRfY3N2KCJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vcmZvcmRhdGFzY2llbmNlL3RpZHl0dWVzZGF5L21hc3Rlci9kYXRhLzIwMTgtMDktMTEvY2F0c192c19kb2dzLmNzdiIpICU+JSAKICBzZWxlY3QoLVgxKQpgYGAKCkNoZWNrIGRhdGEgbmFtZXMuCmBgYHtyfQpuYW1lcyhjYXRzdmRvZ3MpCmBgYAoKTG9vayBhdCBmaXJzdCA2IHJvd3Mgb2YgZGF0YS4KYGBge3J9CmhlYWQoY2F0c3Zkb2dzKQpgYGAKCiMjIEVEQQpXaGljaCBzdGF0ZSBoYXMgdGhlIGhpZ2hlc3QgYGF2Z19kb2dzX3Blcl9ob3VzZWhvbGRgPwpgYGB7cn0KY2F0c3Zkb2dzICU+JSAKICBhcnJhbmdlKGRlc2MoYXZnX2RvZ3NfcGVyX2hvdXNlaG9sZCkpICU+JSAKICBzZWxlY3Qoc3RhdGUsIGF2Z19kb2dzX3Blcl9ob3VzZWhvbGQpCmBgYAoKV2hpY2ggc3RhdGUgaGFzIHRoZSBoaWdoZXN0IGBhdmdfY2F0c19wZXJfaG91c2Vob2xkYD8KYGBge3J9CmNhdHN2ZG9ncyAlPiUgCiAgYXJyYW5nZShkZXNjKGF2Z19jYXRzX3Blcl9ob3VzZWhvbGQpKSAlPiUgCiAgc2VsZWN0KHN0YXRlLCBhdmdfY2F0c19wZXJfaG91c2Vob2xkKQpgYGAKCklzIHRoZXJlIGEgY29ycmVsYXRpb24gYmV0d2VlbiBkb2cgb3duZXJzaGlwIGFuZCBjYXQgb3duZXJzaGlwPwpgYGB7cn0KcGVyY2VudF9vd25lcnNfcGxvdCA8LSBjYXRzdmRvZ3MgJT4lIAogIGZpbHRlcihzdGF0ZSAhPSAiRGlzdHJpY3Qgb2YgQ29sdW1iaWEiKSAlPiUgCiAgZ2dwbG90KGFlcyh4ID0gcGVyY2VudF9kb2dfb3duZXJzLCB5ID0gcGVyY2VudF9jYXRfb3duZXJzKSkgKwogIGdlb21fcG9pbnQoYWVzKGNvbCA9IHN0YXRlKSwgc2hvdy5sZWdlbmQgPSBGQUxTRSkgKwogIGdlb21fc21vb3RoKHNlID0gRkFMU0UsIG1ldGhvZCA9ICJsbSIpCgpnZ3Bsb3RseShwZXJjZW50X293bmVyc19wbG90KQpgYGAKCkhvdyBkbyB3ZSByZXByZXNlbnQgdGhpcyBnZW9ncmFwaGljYWxseT8gKGZvbGxvdyBleGFtcGxlIG91dGxpbmVkIFtoZXJlXShodHRwczovL3Bsb3QubHkvci9jaG9yb3BsZXRoLW1hcHMvKSkKYGBge3J9CiMgQWRkIHN0YXRlIGNvZGUgdG8gdGhlIGRhdGEKY2F0c3Zkb2dzIDwtIGNhdHN2ZG9ncyAlPiUgCiAgbWVyZ2UoCiAgICB0aWJibGUoc3RhdGUgPSBzdGF0ZS5uYW1lLAogICAgICAgICAgIGNvZGUgPSBzdGF0ZS5hYmIpCiAgKQoKZyA8LSBsaXN0KAogIHNjb3BlID0gJ3VzYScsCiAgcHJvamVjdGlvbiA9IGxpc3QodHlwZSA9ICdhbGJlcnMgdXNhJyksCiAgc2hvd2xha2VzID0gVFJVRSwKICBsYWtlY29sb3IgPSB0b1JHQignYmx1ZScpCikKCmNhdHN2ZG9ncyAlPiUgCiAgcGxvdF9nZW8obG9jYXRpb25tb2RlID0gJ1VTQS1zdGF0ZXMnKSAlPiUKICBhZGRfdHJhY2UoCiAgICB6ID0gfnBlcmNlbnRfY2F0X293bmVycywgbG9jYXRpb25zID0gfmNvZGUsCiAgICBjb2xvciA9IH5wZXJjZW50X2NhdF9vd25lcnMsIGNvbG9ycyA9ICdSZWRzJwogICkgJT4lCiAgY29sb3JiYXIoKSAlPiUKICBsYXlvdXQoCiAgICB0aXRsZSA9ICdDYXQgT3duZXJzaGlwIGluIHRoZSBVU0EnLAogICAgZ2VvID0gZwogICkKYGBgCgpgYGB7cn0KY2F0c3Zkb2dzICU+JSAKICBwbG90X2dlbyhsb2NhdGlvbm1vZGUgPSAnVVNBLXN0YXRlcycpICU+JQogIGFkZF90cmFjZSgKICAgIHogPSB+cGVyY2VudF9kb2dfb3duZXJzLCBsb2NhdGlvbnMgPSB+Y29kZSwKICAgIGNvbG9yID0gfnBlcmNlbnRfZG9nX293bmVycywgY29sb3JzID0gJ0JsdWVzJwogICkgJT4lCiAgY29sb3JiYXIoKSAlPiUKICBsYXlvdXQoCiAgICB0aXRsZSA9ICdEb2cgT3duZXJzaGlwIGluIHRoZSBVU0EnLAogICAgZ2VvID0gZwogICkKYGBgCgpDYWxjdWxhdGUgYW5kIHBsb3QgcmFua2luZ3MgYmFzZWQgb24gZGlmZmVyZW5jZSBiZXR3ZWVuIGBwZXJjZW50X2RvZ19vd25lcnNgIGFuZApgcGVyY2VudF9jYXRfb3duZXJzYC4KYGBge3J9CmNhdHN2ZG9ncyAlPiUgCiAgbXV0YXRlKHBlcmNfZGlmZiA9IHBlcmNlbnRfZG9nX293bmVycyAtIHBlcmNlbnRfY2F0X293bmVycywKICAgICAgICAgY29sb3IgPSBwZXJjX2RpZmYgPiAwKSAlPiUgCiAgYXJyYW5nZShkZXNjKHBlcmNfZGlmZikpICU+JSAKICBtdXRhdGUocm93X251bSA9IHJvd19udW1iZXIoKSwKICAgICAgICAgc3RhdGUgPSBnbHVlOjpnbHVlKCJ7c3RhdGV9ICh7cm93X251bX0pIikpICU+JSAKICBnZ3Bsb3QoYWVzKHggPSBmY3RfcmVvcmRlcihzdGF0ZSwgcGVyY19kaWZmKSwgeSA9IHBlcmNfZGlmZiwgZmlsbCA9IGNvbG9yKSkgKwogIGdlb21fY29sKHNob3cubGVnZW5kID0gRkFMU0UpICsKICBsYWJzKHggPSAiIiwKICAgICAgIHkgPSAiUGVyY2VudCBkaWZmZXJlbmNlIGluIGRvZyBvd25lcnMgYW5kIGNhdCBvd25lcnMiLAogICAgICAgdGl0bGUgPSAiRG9nIGxvdmVycyBvZiBBbWVyaWNhIHVuaXRlIikgKwogIGNvb3JkX2ZsaXAoKQpgYGAKCldoYXQncyBnb2luZyBvbiB3aXRoIERlbGF3YXJlPwpgYGB7cn0KY2F0c3Zkb2dzICU+JSAKICBmaWx0ZXIoc3RhdGUgPT0gIkRlbGF3YXJlIikgJT4lIAogIHNlbGVjdChjb250YWlucygicGVyY2VudCIpKQpgYGAKCiMgQ29sbGVnZSBNYWpvcnMKIyMgRGF0YQpSZWFkIGluIGRhdGEgZnJvbSBVUkwgYW5kIGNsZWFuIHVwIG5hbWVzIHVzaW5nIHRoZQpbYGphbml0b3JgXShodHRwczovL2dpdGh1Yi5jb20vc2ZpcmtlL2phbml0b3IpIHBhY2thZ2UKYGBge3J9CmNvbGxlZ2VfbWFqb3JzIDwtIHJlYWRfY3N2KCJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vcmZvcmRhdGFzY2llbmNlL3RpZHl0dWVzZGF5L21hc3Rlci9kYXRhLzIwMTgtMTAtMTYvcmVjZW50LWdyYWRzLmNzdiIpICU+JSAKICBqYW5pdG9yOjpjbGVhbl9uYW1lcyhjYXNlID0gInNuYWtlIikKYGBgCgpDaGVjayBkYXRhIGZvciBhbnkgcHJvYmxlbXMgd2l0aCBwYXJzaW5nCmBgYHtyfQpwcm9ibGVtcyhjb2xsZWdlX21ham9ycykKYGBgCgpUYWtlIGEgbG9vayBhdCB0aGUgZGF0YSB1c2luZyBgVmlldygpYApgYGB7cn0KVmlldyhjb2xsZWdlX21ham9ycykKYGBgCgpXaGF0IGFyZSB0aGUgaGlnaGVzdC9sb3dlc3QgZWFybmluZyBtYWpvcnM/CmBgYHtyfQplYXJuaW5nc19vcmRlciA8LSBjb2xsZWdlX21ham9ycyAlPiUgCiAgc2VsZWN0KG1ham9yLCBtZWRpYW4pICU+JSAKICBhcnJhbmdlKGRlc2MobWVkaWFuKSkKCmVhcm5pbmdzX29yZGVyICU+JSAKICBoZWFkKCkgJT4lIAogIGJpbmRfcm93cygKICAgIGVhcm5pbmdzX29yZGVyICU+JSAKICAgICAgdGFpbCgpCiAgKQpgYGAKCldoYXQgYWJvdXQgU3RhdGlzdGljcz8KYGBge3J9CmNvbGxlZ2VfbWFqb3JzICU+JSAKICBmaWx0ZXIoc3RyX2RldGVjdCh0b2xvd2VyKG1ham9yKSwgInN0YXQiKSkgJT4lIAogIHNlbGVjdChtYWpvciwgbWVkaWFuKQpgYGAKClBsb3QgbWVkaWFuIHNhbGFyeSBieSBtYWpvci4KYGBge3J9CmNvbGxlZ2VfbWFqb3JzICU+JSAKICBnZ3Bsb3QoYWVzKHggPSBmY3RfcmVvcmRlcihtYWpvciwgbWVkaWFuKSwgeSA9IG1lZGlhbikpICsgCiAgZ2VvbV9jb2woKSArIAogIHNjYWxlX3lfY29udGludW91cyhsYWJlbHMgPSBzY2FsZXM6OmRvbGxhcikgKwogIGxhYnMoeSA9ICJNZWRpYW4gU2FsYXJ5IiwKICAgICAgIHggPSAiIiwKICAgICAgIHRpdGxlID0gIk1ham9yIE1lZGlhbiBTYWxhcmllcyIpICsKICBjb29yZF9mbGlwKCkKCmBgYAoKSG93IG1hbnkgb2YgZWFjaCBgbWFqb3JfY2F0ZWdvcnlgIGFyZSB0aGVyZT8KYGBge3J9CmNvbGxlZ2VfbWFqb3JzICU+JSAKICBjb3VudChtYWpvcl9jYXRlZ29yeSwgc29ydCA9IFRSVUUpCmBgYAoKV2hhdCdzIHRoZSBkaXN0cmlidXRpb24gb2YgbWVkaWFuIGluY29tZSBhY3Jvc3MgZWFjaCBgbWFqb3JfY2F0ZWdvcnlgPwpgYGB7cn0KY29sbGVnZV9tYWpvcnMgJT4lIAogIGdncGxvdChhZXMoeCA9IGZjdF9yZW9yZGVyKG1ham9yX2NhdGVnb3J5LCBtZWRpYW4pLCB5ID0gbWVkaWFuKSkgKwogIGdlb21fYm94cGxvdCgpICsKICBzY2FsZV95X2NvbnRpbnVvdXMobGFiZWxzID0gc2NhbGVzOjpkb2xsYXIpICsKICBsYWJzKHkgPSAiTWVkaWFuIEluY29tZSIsCiAgICAgICB4ID0gIiIsCiAgICAgICB0aXRsZSA9ICJJbmNvbWUgRGlzdHJpYnV0aW9uIGFjcm9zcyBNYWpvciBDYXRlZ29yaWVzIikgKwogIGNvb3JkX2ZsaXAoKQpgYGAKCmBgYHtyfQpjb2xsZWdlX21ham9ycyAlPiUgCiAgZ2dwbG90KGFlcyh4ID0gZmN0X3Jlb3JkZXIobWFqb3JfY2F0ZWdvcnksIHNoYXJlX3dvbWVuLCBuYS5ybSA9IFRSVUUpLCB5ID0gc2hhcmVfd29tZW4pKSArCiAgZ2VvbV9ib3hwbG90KCkgKwogIHNjYWxlX3lfY29udGludW91cyhsYWJlbHMgPSBzY2FsZXM6OnBlcmNlbnQpICsKICBsYWJzKHkgPSAiJSBXb21lbiIsCiAgICAgICB4ID0gIiIsCiAgICAgICB0aXRsZSA9ICJQZXJjZW50YWdlIG9mIFdvbWVuIGJ5IE1ham9yIENhdGVnb3J5IikgKwogIGNvb3JkX2ZsaXAoKQpgYGAKCg==